class Solution {
public:
    int longestOnes(vector<int>& nums, int k) {
        // 时间O（N）， 空间O（1）
        int n = nums.size(), ret = 0, left = 0, right = 0, zero = 0;
        while(right < n)
        {
            if(nums[right] == 0) 
            {
                zero++; // 进窗⼝
            }
            while(zero > k) // 判断
            {
                if(nums[left++] == 0) 
                {
                    zero--; // 出窗⼝
                }
            }
            ret = max(ret, right - left + 1); // 更新结果
            ++right;
        }
        return ret;
    }
};